package com.tarena.lbs.user.service;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.model.Result;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.user.api.pojo.dto.AdminDto;
import com.tarena.lbs.user.pojo.param.AdminParam;
import com.tarena.lbs.user.pojo.query.AdminQuery;
import com.tarena.lbs.user.pojo.vo.AdminVO;

public interface AdminService {

    AdminVO detail() throws BusinessException, BusinessException;

    AdminDto detail(Integer id);

    PageResult<AdminVO> pageList(AdminQuery query);

    void save(AdminParam param) throws BusinessException;

    void update(AdminParam param) throws BusinessException;

//    void delete(Integer id) throws BusinessException;

    void updateStatus(Integer id, Integer status);

    /**
     * 重置管理员密码
     * @param id 管理员ID
     * @throws BusinessException 业务异常
     */
    void resetPassword(Integer id) throws BusinessException;

    /**
     * 为管理员分配角色
     * @param id 管理员ID
     * @param accountType 角色类型（0：平台管理员，1：商家管理员）
     * @throws BusinessException 业务异常
     */
    void assignRole(Integer id, Integer accountType, Integer businessId) throws BusinessException;

    Result<Void> deleteAdmin(Integer id);
}



















